package com.sc.study.exam.mapper;

import java.util.List;
import com.sc.study.exam.domain.ScStudentTestexam;
import com.sc.study.exam.domain.ScTestexam;
import org.apache.ibatis.annotations.Param;

/**
 * 学生试卷Mapper接口
 * 
 * @author sc
 * @date 2022-03-16
 */
public interface ScStudentTestexamMapper 
{

    /**
     * 根据学生编号和考试编号 班级编号 获取学生的考试成绩
     * @param studentId
     * @param testExamId
     * @return
     */
    Integer getScore(@Param("studentId") Integer studentId, @Param("testExamId") Integer testExamId);

    /**
     * 查询学生试卷
     * 
     * @param id 学生试卷主键
     * @return 学生试卷
     */
    public ScStudentTestexam selectScStudentTestexamById(Long id);

    /**
     * 查询学生试卷列表
     * 
     * @param scStudentTestexam 学生试卷
     * @return 学生试卷集合
     */
    public List<ScStudentTestexam> selectScStudentTestexamList(ScStudentTestexam scStudentTestexam);

    /**
     * 新增学生试卷
     * 
     * @param scStudentTestexam 学生试卷
     * @return 结果
     */
    public int insertScStudentTestexam(ScStudentTestexam scStudentTestexam);

    /**
     * 修改学生试卷
     * 
     * @param scStudentTestexam 学生试卷
     * @return 结果
     */
    public int updateScStudentTestexam(ScStudentTestexam scStudentTestexam);

    /**
     * 删除学生试卷
     * 
     * @param id 学生试卷主键
     * @return 结果
     */
    public int deleteScStudentTestexamById(Long id);

    /**
     * 批量删除学生试卷
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteScStudentTestexamByIds(Long[] ids);

    /**
     * 批量删除考试
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteScTestexamByIds(Long[] ids);
    
    /**
     * 批量新增考试
     * 
     * @param scTestexamList 考试列表
     * @return 结果
     */
    public int batchScTestexam(List<ScTestexam> scTestexamList);
    

    /**
     * 通过学生试卷主键删除考试信息
     * 
     * @param id 学生试卷ID
     * @return 结果
     */
    public int deleteScTestexamById(Long id);

    /**
     * 根据学生试卷删除试卷信息
     * @param scStudentTestexam
     * @return
     */
    public int deleteScStudentTestexam(ScStudentTestexam scStudentTestexam);

    /**
     * 根据考试编号和学生进行删除
     * @param testExamId 考试编号
     * @param studentIds 学生编号集合
     * @return
     */
    int removeByTestExamIdAndStudentId(@Param("testExamId") Integer testExamId, @Param("studentIds") Integer[] studentIds);

    /**
     * 批量添加 scTestExam 里面必须携带学生id集合
     * @param scTestExam 里面必须携带学生id集合
     * @return
     */
    int batchAddByStudentIds(@Param("scTestExam") ScTestexam scTestExam);

    /**
     * 导入excel: 批量添加
     * @param scTestexam
     * @param studentTestExamList
     * @return
     */
    int excelImportBatchAdd(@Param("testExam") ScTestexam scTestexam,@Param("studentTestExamList") List<ScStudentTestexam> studentTestExamList);

    /**
     * 根据studentId 和 testExamId 查询出id值
     * @param studentId
     * @param testExamId
     * @return
     */
    Long getIdByStudentAndTextExam(@Param("studentId") Long studentId,@Param("testExamId") Long testExamId);
}
